package client;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Timer;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JWindow;
import common.ComandiException;





public class Grafica implements Visualizzazione{
	
	public static int RIGHE_MAPPA = 40;
	public static int COLONNE_MAPPA = 40;
//	private JButton[][] pulsantiMappa=new JButton[RIGHE_MAPPA][COLONNE_MAPPA];
	private SchermataInPartita schermata3;
	private VistaLocaleGUI vistaMappaLoc;
	private VistaLocaleGUI vistaMappaLocMovimento;
	
	private boolean movimento=false;
	private static final int dimCelleMappaGen=17;
	
	private BackgroundSound s1;
	private BackgroundSound s2;
	private BackgroundSound s3;
	
	private JFrame frameStato;

	public JFrame getFrameStato() {
		return frameStato;
	}

	public void setFrameStato(JFrame frameStato) {
		this.frameStato = frameStato;
	}



	private boolean on=true;
	
	public boolean isOn() {
		return on;
	}

	public void setOn(boolean on) {
		this.on = on;
	}

	public boolean isMovimento() {
		return movimento;
	}

	public void setMovimento(boolean movimento) {
		this.movimento = movimento;
	}



	private int dimPulsantiPixel=vistaMappaLoc.getDimcelle();;
	
	private Client client;
	public Grafica(Client client){
		this.client=client;
		vistaMappaLoc=new VistaLocaleGUI(client,this);
		vistaMappaLocMovimento=new VistaLocaleGUI(client, this);
		for(int r=0;r<9;r++){
			for(int c=0;c<9;c++){
				vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].addActionListener(vistaMappaLocMovimento.getA());
				
			}
		}
	}
	
	@Override
	public void primaSchermata(Client client) {
		//prova per vedere se funziona schermata in partita/////
		//s=new SchermataInPartita(client);
		////////////////

		Intro schermata1=new Intro(client, this);
		s1=new BackgroundSound();
		if(!on){
			s1.stop();
			schermata1.getSound().setIcon(new Immagine("soundOff.png"));
		}
		synchronized(this){
			try {
				//System.out.println("prima di wait 1");
				wait();
				//System.out.println("dopo di wait 1");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	@Override
	public void secondaSchermata(Client client) {
		s1.stop();
		SchermataFuoriPartita schermata2= new SchermataFuoriPartita(client, this);
		s2=new BackgroundSound("Bladerunner.mid");
		if(!on){
			s2.stop();
			schermata2.getSound().setIcon(new Immagine("soundOff.png"));
		}
		synchronized(this){
			try {
				//System.out.println("prima di wait 2");
				wait();
				//System.out.println("dopo di wait 2");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		s2.stop();
	}

	@Override
	public void terzaSchermata(Client client) {
		s2.stop();
		schermata3= new SchermataInPartita(client, this);
		s3=new BackgroundSound("TheCrow.mid");
		
		if(!on){
			s3.stop();
			schermata3.getSound().setIcon(new Immagine("soundOff.png"));
		}
		Font fUser=new Font("Verdana", Font.ITALIC,14) ;
		schermata3.getLabelNorth().setFont(fUser);
		schermata3.getLabelNorth().setForeground(new Color(255, 0, 0));
		schermata3.getLabelNorth().setOpaque(true);
		schermata3.getLabelNorth().setText("Giocatore: "+ client.getUsername());
		
		synchronized(this){
			try {
				//System.out.println("prima di wait 3");
				wait();
				//System.out.println("dopo di wait 3");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		s3.stop();
		
	}

	@Override
	public void displayOk() {
		JOptionPane.showMessageDialog(null,"ok");
	}

	@Override
	public void displayOk(String messaggio) {
		if(messaggio.equals("v"))
			JOptionPane.showMessageDialog(null,"Combattimento Vinto!");
		else if(messaggio.equals("p"))
			JOptionPane.showMessageDialog(null,"Combattimento Perso!");
	}

	@Override
	public void displayNo(String errore) {
		JOptionPane.showMessageDialog(null,"no "+errore);
		if(errore.equals("finePartita")){
			synchronized(this){
				notifyAll();
			}
		}
			
	}

	@Override
	public void displayListaGiocatori(String[] giocatori) {
		if(giocatori.length==0)
			JOptionPane.showMessageDialog(null,"nessun giocatore");
		else
		JOptionPane.showMessageDialog(null,giocatori);
		
	}

	@Override
	public void displayClassifica(String[] classifica) {
		if(classifica.length==0)
			JOptionPane.showMessageDialog(null,"nessun giocatore in classifica");
		else
		JOptionPane.showMessageDialog(null,classifica);
		
	}

	
	@Override
	public void displayMappaGenerale(String[] mappa) {
		
		schermata3.getPanel_mappa().setLayout(null);
		schermata3.getPanel_mappa().setPreferredSize(new Dimension(800, 800));
		int n=0;
		/*for(int i=2;i<mappa.length;i++){
			System.out.println(mappa[i]);
		}
		System.out.println("\n");
		*/
		for (int i=2; i<RIGHE_MAPPA+2; i++){
			for (int j=0; j<COLONNE_MAPPA; j++){
				
				if(mappa[i].charAt(j)=='a'){
					//((AbstractButton) schermata3.getPanel_mappa().getComponent(n)).setIcon(new Immagine("acqua.png"));
					schermata3.getPulsantiMappa()[i-2][j].setName("a");
					schermata3.getPulsantiMappa()[i-2][j].setIcon(new Immagine("acqua.png"));
					//schermata3.getPulsantiMappa()[i-2][j].setBackground(Color.cyan);
				}
				else if(mappa[i].charAt(j)=='t'){
					//((AbstractButton) schermata3.getPanel_mappa().getComponent(n)).setIcon(new Immagine("terra.png"));
					schermata3.getPulsantiMappa()[i-2][j].setName("t");
					schermata3.getPulsantiMappa()[i-2][j].setIcon(new Immagine("terra.png"));
					//schermata3.getPulsantiMappa()[i-2][j].setBackground(new Color(80,0,0));
				}else 
					if(mappa[i].charAt(j)=='v'){
					//	((AbstractButton) schermata3.getPanel_mappa().getComponent(n)).setIcon(new Immagine("vegetazione.png"));
						schermata3.getPulsantiMappa()[i-2][j].setName("v");
						schermata3.getPulsantiMappa()[i-2][j].setIcon(new Immagine("vegetazione.png"));
					//	schermata3.getPulsantiMappa()[i-2][j].setBackground(Color.green);

				}else
					if(mappa[i].charAt(j)=='c'){
					//	((AbstractButton) schermata3.getPanel_mappa().getComponent(n)).setIcon(new Immagine("carogna.png"));
						schermata3.getPulsantiMappa()[i-2][j].setName("c");
						schermata3.getPulsantiMappa()[i-2][j].setIcon(new Immagine("carogna.png"));
						//schermata3.getPulsantiMappa()[i-2][j].setBackground(Color.orange);

				}else{
					//((AbstractButton) schermata3.getPanel_mappa().getComponent(n)).setIcon(new Immagine("buio.png"));
					schermata3.getPulsantiMappa()[i-2][j].setName("b");
					schermata3.getPulsantiMappa()[i-2][j].setBackground(Color.black);
					//schermata3.getPulsantiMappa()[i-2][j].setIcon(new Immagine("buio.png"));
				}				
				//n++;
				//schermata3.getPulsantiMappa()[i-2][j].setHorizontalTextPosition(JButton.CENTER);
				//schermata3.getPulsantiMappa()[i-2][j].setVerticalTextPosition(JButton.CENTER);
				schermata3.getPulsantiMappa()[i-2][j].setBounds(j*dimCelleMappaGen,(i-2)*dimCelleMappaGen,dimCelleMappaGen,dimCelleMappaGen);
				schermata3.getPanel_mappa().add(schermata3.getPulsantiMappa()[i-2][j]);
				//System.out.print(""+schermata3.getPulsantiMappa()[i-2][j].getName());
			}
			System.out.print("\n");
		}
		
			
	}

	@Override
	public void displayListaDinosauri(String[] dinosauri) {
		if(dinosauri.length==0)
			JOptionPane.showMessageDialog(null,"nessun dinosauro");
		else{
							
			Object[] possibleValues = dinosauri;
			Object sel_input = JOptionPane.showInputDialog(null, "Dinosauri", "Lista",
			                                                  JOptionPane.INFORMATION_MESSAGE, null,
			                                                  possibleValues, possibleValues[0]);
			
			 String idDino= new String((String) sel_input);  // oppure con cast    input = (String) sel_input;
	         
	         schermata3.setIdDino(idDino);
	         vistaMappaLocMovimento.setIdDino(idDino);
			
		}
		
	}

	@Override
	public void displayVistaLocale(String[] vista) {
		vistaMappaLoc.setVisible(false);
		vistaMappaLocMovimento.setVisible(false);
		
		int origineX=Integer.parseInt(vista[0]);
		int origineY=Integer.parseInt(vista[1]);
		vistaMappaLocMovimento.setOrigineX(origineX);
		vistaMappaLocMovimento.setOrigineY(origineY);
		
		vistaMappaLoc.setOrigineX(origineX);
		vistaMappaLoc.setOrigineY(origineY);
	
		int nRighe=Integer.parseInt(vista[2]);
		int nColonne=Integer.parseInt(vista[3]);
		
		for(int r=0;r<vistaMappaLocMovimento.getPulsantiMappaLoc().length;r++){
			for(int c=0;c<vistaMappaLocMovimento.getPulsantiMappaLoc()[r].length;c++){
				vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(null);
				vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVisible(false);
				vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setText(null);
			}
		}
		
		
		if(isMovimento()==true){
			vistaMappaLocMovimento.setVisible(true);
			
			
			for(int i=0;i<vista.length;i++){
				System.out.println(vista[i]);
			}
			System.out.println("\n");
			
			
		/*	int origineX=Integer.parseInt(vista[0]);
			int origineY=Integer.parseInt(vista[1]);
			vistaMappaLocMovimento.setOrigineX(origineX);
			vistaMappaLocMovimento.setOrigineY(origineY);
		
			int nRighe=Integer.parseInt(vista[2]);
			int nColonne=Integer.parseInt(vista[3]);
			
			*/
			
			int n=0;
			int i=4;
			int j=0;
			Font f=new Font("Helvetica", Font.BOLD,10) ;
			
			vistaMappaLocMovimento.setPreferredSize(new Dimension(vistaMappaLocMovimento.getDimcelle()*nColonne+80, vistaMappaLocMovimento.getDimcelle()*nRighe+80));
			
			vistaMappaLocMovimento.getPanel_vista_loc().setPreferredSize(new Dimension(vistaMappaLocMovimento.getDimcelle()*nColonne+80,vistaMappaLocMovimento.getDimcelle()*nRighe+80));
			
		
			
			for(int r=0;r<nRighe;r++){
				for(int c=0;c<nColonne;c++){
					
					if(vista[i].charAt(j)!=';'){
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(null);
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setText(null);	
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVisible(false);
						if(vista[i].charAt(j)=='a'){
							
							
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("acquaL.png"));
							// vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("acquaL.png"));
							
						}else if(vista[i].charAt(j)=='t'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("terraL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("terraL.png"));
		
						}else if(vista[i].charAt(j)=='v'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("vegetazioneL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("vegetazioneL.png"));
							
							j=j+2;//salto la virgola					
							String energiaV="";
							do{
								energiaV=energiaV+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setText(energiaV );
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText(energiaV );
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
							
						}else if(vista[i].charAt(j)=='c'){					
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							//vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setBackground(Color.yellow);
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("carognaL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("carognaL.png"));
							
							j=j+2;//salto la virgola
							String energiaC="";
							do{
								energiaC=energiaC+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setText(energiaC );
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText( energiaC );
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
							
						}else if(vista[i].charAt(j)=='d'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("dinosauroL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton("Dino"));
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("dino.png"));
							
							j=j+2;//salto la virgola
							String id="";
							do{
								id=id+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setText(id);
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText(id);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
						}
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setBounds(c*dimPulsantiPixel,r*dimPulsantiPixel,dimPulsantiPixel,dimPulsantiPixel);
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setFont(f);					
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setForeground(new Color(255, 0, 0));
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setBounds(r*dimPulsantiPixel,c*dimPulsantiPixel,dimPulsantiPixel,dimPulsantiPixel);
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setFont(f);					
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setForeground(new Color(255, 0, 255));
						
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).addActionListener(new AscoltatoreMovimento());
						//n++;
						j++;
					
						
						int rInv=nRighe-r-1;
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setName(""+c+','+rInv);
						vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].setVisible(true);
						
						vistaMappaLocMovimento.getPanel_vista_loc().add(vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c]);	
				////////		vistaMappaLocMovimento.getPulsantiMappaLoc()[r][c].addActionListener(vistaMappaLocMovimento.getA());
					}else{
						j++;
						c--;
					}
					
				}
				i++;
				j=0;
				//System.out.print("\n");
			}
			
			
			
			
			
			
		}
		else{
			
		
			vistaMappaLoc.setVisible(true);
			
			//vistaMappaLoc=new VistaLocaleGUI(client);
		/*	
			for(int i=4;i<vista.length;i++){
				System.out.println(vista[i]);
			}
			System.out.println("\n");
			*/
		/*	int origineX=Integer.parseInt(vista[0]);
			int origineY=Integer.parseInt(vista[1]);
			vistaMappaLoc.setOrigineX(origineX);
			vistaMappaLoc.setOrigineY(origineY);
		
			int nRighe=Integer.parseInt(vista[2]);
			int nColonne=Integer.parseInt(vista[3]);
			*/
			int n=0;
			int i=4;
			int j=0;
			Font f=new Font("Helvetica", Font.BOLD,10) ;
			vistaMappaLoc.setPreferredSize(new Dimension(vistaMappaLoc.getDimcelle()*nColonne+80, vistaMappaLoc.getDimcelle()*nRighe+80));
			vistaMappaLoc.getPanel_vista_loc().setPreferredSize(new Dimension(vistaMappaLoc.getDimcelle()*nColonne+80,vistaMappaLoc.getDimcelle()*nRighe+80));
			
			
			for(int r=0;r<nRighe;r++){
				for(int c=0;c<nColonne;c++){
					if(vista[i].charAt(j)!=';'){
					
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(null);
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setText(null);
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setVisible(false);
						if(vista[i].charAt(j)=='a'){
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(null);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("acquaL.png"));
							// vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("acquaL.png"));
							
						}else if(vista[i].charAt(j)=='t'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("terraL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("terraL.png"));
		
						}else if(vista[i].charAt(j)=='v'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("vegetazioneL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("vegetazioneL.png"));
							
							j=j+2;//salto la virgola					
							String energiaV="";
							do{
								energiaV=energiaV+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setText(energiaV );
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText(energiaV );
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
							
						}else if(vista[i].charAt(j)=='c'){					
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("carognaL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("carognaL.png"));
							
							j=j+2;//salto la virgola
							String energiaC="";
							do{
								energiaC=energiaC+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setText(energiaC );
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText( energiaC );
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
							
						}else if(vista[i].charAt(j)=='d'){
							//vistaMappaLoc.getPulsantiMappaLoc()[r][c]=new JButton();
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setIcon(new Immagine("dinosauroL.png"));
							//vistaMappaLoc.getPanel_vista_loc().add(new JButton("Dino"));
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setIcon(new Immagine("dino.png"));
							
							j=j+2;//salto la virgola
							String id="";
							do{
								id=id+vista[i].charAt(j);
								j++;
							}while(vista[i].charAt(j)!=';' && vista[i].charAt(j)!=',');
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setText(id);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setHorizontalTextPosition(JButton.CENTER);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setVerticalTextPosition(JButton.CENTER);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].setName(id);
							vistaMappaLoc.getPulsantiMappaLoc()[r][c].addMouseListener(vistaMappaLocMovimento.getaStato());
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setText(id);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setHorizontalTextPosition(JButton.CENTER);
							//((AbstractButton) vistaMappaLoc.getPanel_vista_loc().getComponent(n)).setVerticalTextPosition(JButton.CENTER);
						}
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setBounds(c*dimPulsantiPixel,r*dimPulsantiPixel,dimPulsantiPixel,dimPulsantiPixel);
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setFont(f);					
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setForeground(new Color(255, 0, 0));
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setBounds(r*dimPulsantiPixel,c*dimPulsantiPixel,dimPulsantiPixel,dimPulsantiPixel);
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setFont(f);					
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).setForeground(new Color(255, 0, 255));
						
						//vistaMappaLoc.getPanel_vista_loc().getComponent(n).addActionListener(new AscoltatoreMovimento());
						//n++;
						j++;
					
						
						int rInv=nRighe-r-1;
						//vistaMappaLoc.getPulsantiMappaLoc()[r][c].setName(""+c+','+rInv);
						vistaMappaLoc.getPulsantiMappaLoc()[r][c].setVisible(true);
						
						vistaMappaLoc.getPanel_vista_loc().add(vistaMappaLoc.getPulsantiMappaLoc()[r][c]);	
						//vistaMappaLoc.getPulsantiMappaLoc()[r][c].addActionListener(vistaMappaLoc.getA());
					}else{
						j++;
						c--;
					}
					
				}
				i++;
				j=0;
				//System.out.print("\n");
			}
			
		
		}
		
		
		

		

	}

	

	public BackgroundSound getS1() {
		return s1;
	}

	public void setS1(BackgroundSound s1) {
		this.s1 = s1;
	}

	public BackgroundSound getS2() {
		return s2;
	}

	public void setS2(BackgroundSound s2) {
		this.s2 = s2;
	}

	public BackgroundSound getS3() {
		return s3;
	}

	public void setS3(BackgroundSound s3) {
		this.s3 = s3;
	}

	@Override
	public void displayStatoDinosauro(String dinosauro) {
	//	System.out.println(dinosauro);
		frameStato=new JFrame();
		frameStato.setUndecorated(true);
		JTextArea label_stato=new JTextArea();
		label_stato.setEditable(false);
		label_stato.setBackground(Color.orange);
		
		//label_stato.setVisible(true);
		//label_stato.setOpaque(true);
		label_stato.setText("Stato Dinosauro:\n"+dinosauro);
		//frameStato.setUndecorated(true);
		
		//frameStato.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
		JPanel panel_stato=new JPanel();
		panel_stato.add(label_stato);
		panel_stato.setBackground(Color.orange);
		frameStato.add(panel_stato);
		frameStato.setBackground(Color.orange);
		frameStato.getContentPane().setBackground(Color.orange);
		frameStato.pack();
		frameStato.setVisible(true);
		frameStato.setLayout(null);
		//frameStato.setPreferredSize(new Dimension (200, 230));
		frameStato.setBounds(50, 50, 150, 200);

		//vistaMappaLoc.getStato().setText("Stato Dinosauro:\n"+dinosauro);
		
		//JOptionPane.showMessageDialog(null,dinosauro);
		
	}

	@Override
	public void displayCambioTurno(String username) {
		if(client.getUsername().equals(username)){
		
		/*javax.swing.Timer timer= new javax.swing.Timer(1000, new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showOptionDialog(null, null
				
			}
		});*/

		 

		   
			
			
			Object[] options = {"CONFERMA TURNO", "PASSA TURNO"};
			int yn=JOptionPane.showOptionDialog(null,"E' il tuo turno","Turni",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); 
			if (yn==JOptionPane.NO_OPTION) 
				try{
					client.getServerInt().passaTurno(client.getToken()); 
				}catch(ComandiException e){
					client.no(e.getMessage());
				}catch(IOException ex){
					client.no("errore di connessione");
				}
				
			else{
				if (yn==JOptionPane.YES_OPTION){
					try{
						client.getServerInt().confermaTurno(client.getToken());
					}catch(ComandiException e){
						client.no(e.getMessage());
					}catch(IOException ex){
						client.no("errore di connessione");
					}
				}
			}
		
			
		}else{
			JOptionPane.showMessageDialog(null,"Turno di: "+username);
		}
		
	}

			
		
		
		


	


}
